package com.itheima.heima.info.manager.system.service;

import com.itheima.heima.info.manager.system.dao.BaseStudentDao;
import com.itheima.heima.info.manager.system.dao.OtherStudentDao;
import com.itheima.heima.info.manager.system.dao.StudentDao;
import com.itheima.heima.info.manager.system.domain.Student;
import com.itheima.heima.info.manager.system.factory.StudentDaoFactory;

/*
学生业务类
与学生相关的业务
写在这个类中
 */
public class StudentService {
    //对象从 工厂里
    //接口的实现类对象 调用方法
    private BaseStudentDao stuDao = StudentDaoFactory.getStudentDao();//手动的new 一旦发生修改 就必然改代码

    //学生业务中的添加方法  调用dao的添加方法
    public boolean addStudent(Student student) {
        //创建对象  调用方法

       // boolean result = stuDao.addStudent(student);
        return stuDao.addStudent(student);
    }
    //判断学号是否存在
    public boolean isExist(String sid) {
        //获取所有的学生
        //StudentDao stuDao = new StudentDao();
        Student[] stus=stuDao.findAll();
        //遍历学生
        for (int i = 0; i < stus.length; i++) {
            //判断学生的学号与传进来的学号是否相同
            Student stu = stus[i];
            //先对stu 进行非空判断
            if(stu!=null&&stu.getSid().equals(sid)){
                return true;
            }
        }
        //不同 继续遍历 最后都没有  返回false
        return false;
    }

    public Student[] findAllStudent() {
        //调用dao 查看所有
        Student[] stus = stuDao.findAll();
        //在对stus 进行空判断
        for (int i = 0; i < stus.length; i++) {
            //stus[i] //如果不为空 返回数组
            if(stus[i]!=null){
                return stus;
            }
        }
        //空 返回null
        return  null;
    }

    public void deleteStudent(String sid) {
        stuDao.deleteStudent(sid);
    }

    public void updateStudent(String sid, Student student) {
        stuDao.updateStudent(sid,student);

    }
}
